/*
 * 局部内部类
 * 
 *  1）局部类可直接访问外部类成员，但是对象的创建是在方法内进行的。
 *  2）局部类只访问用final修饰的局部变量和形参。
 *  	原因是：局部变量会随着方法的退出而消亡，
 * 		通过将其定义为final变量，可以扩展其生命周期，可与访问其类实例的生命期相配合。
 *  	因为类实例的生命期是由内存的回收机制决定的。
 *  3）局部类的作用域仅限于其直接外围块。
 *  因而局部类不可使用访问控制修饰符public 、protected 、private。
 *  
 */

package selloutClass;

public class SellOutClass {
	
	private String name;//私有成员变量
	public SellOutClass() {
		name="苹果";	//构造方法
	}
	public void sell(int price) {
		class Apple{	//局部内部类
			int innerPrice=0;	
			public Apple(int price) {
				innerPrice=price;	//构造方法
			}
			public void price() {	//方法
				System.out.println("现在开始销售"+name);
				System.out.println("单价为："+innerPrice+"元");
			}
		}
		Apple apple=new Apple(price);	//实例化Apple类的对象
		apple.price();	//调用局部内部类的方法
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		SellOutClass sample=new SellOutClass();	//实例化SellOutClass类的对象
		sample.sell(100);	//调用SellOutClass类的sell（）方法
	}

}
